/*
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀，返回空字符串 ""。

示例 1：

输入：strs = ["flower","flow","flight"]
输出："fl"

示例 2：

输入：strs = ["dog","racecar","car"]
输出：""
解释：输入不存在公共前缀。
 */

/**
 * @param {string[]} strs
 * @return {string}
 */
var longestCommonPrefix = function (strs) {
  // 当字符串数组长度为 0 时则公共前缀为空，直接返回
  if (strs.length === 0) return "";
  // 记录初始值都和初始值比较，按第一个进行内循环，因为要么第一个最长，要么最短，要么中间
  let fristStr = strs[0];
  // 第二个开始进行比较
  for (let i = 1; i < strs.length; i++) {
    let j = 0;
    // 要么小于第一个字符长度结束遍历，要么小于当前字符遍历
    for (; j < fristStr.length && j < strs[i].length; j++) {
      if (fristStr[j] !== strs[i][j]) {
        break;
      }
    }
    // 每次遍历都取fristStr为新的字符，即前缀
    fristStr = fristStr.substr(0, j);
    // 开始循环就为空时直接return，提升性能
    if (fristStr === "") return fristStr;
  }
  return fristStr;
};

console.log(longestCommonPrefix(["flower", "flow", "flight"]));
